Test-Driven Development¶

Le problème¶

Nous savons que¶

  1. Il faut écrire des testes

  2. Les programmeurs doivent écrirent des tests

    1. Tests unitaires

    2. Tests d'intégrations

Problème: comment ça devrait se passer en pratique?¶

  • Quand devons nous écrire des tests

  • Quelle devrait être la porté des tests

Solution: Test-Driven Development¶

  • Abbreviation: TDD

C'est quoi le Test-Driven Development (TDD)¶

Le Test-Driven Development¶

  • C'est une méthode d'écritude de programme

  • C'est pratiquement spirituel

  • Ça ne dépend pas de libraries où de paradigmes

Comment Écrire du code manière TDD?¶

Point de départ¶

On commence toujours par un projet où tous les tests fonctionnent.

Pourquoi?¶

  1. Il faut partir d'une base solide pour construire un édifice solide.

Étape 1¶

Écrire un test qui échoue. Un test qui ne "compile pas" est un test qui échoue.

Pourquoi¶

  1. Avant d'écrire du code, il être capable d'articuler ce que nous voulons obtenir. Comme les programmeurs parle en language de programmation, quoi de mieux qu'un test pour décrire ce que nous voulons

Vérification¶

On va rouler tous les tests et un seul test devait échouer

Pourquoi¶

  1. Mieux vaut avoir une ceinture et des bretelles

Étape 2¶

Écrire le code le plus simple qui fait en sorte que le test n'échoue plus.

Pourquoi¶

  1. Pour s'assurer de ne pas écrire du code non testé ou d'extra, il faut s'assurer d'écrire le minimum possible

Vérification¶

On va rouler tous les tests et plus un aucun tests ne devaient échouer

Pourquoi¶

  1. Mieux vaut avoir une ceinture et des bretelles

Étape 3¶

Réfactorer le code pour qu'il soit plus lisible, meilleur. Jusqu'à ce que vous soyez fier!

Pourquoi¶

  1. Sans ajouter de nouvelles fonctionnalitées, il faut devenir fier de son code.

Repeat¶

On boucle la boucle et on revient à l'étape 1.

Exemple - Kata¶

Écrire un programme qui...¶

Compte le pointage au bowling!

https://bowlinggenius.com/

  • https://kata-log.rocks/bowling-game-kata

Exercices - Kata¶

  • https://kata-log.rocks/christmas-lights-kata

  • https://kata-log.rocks/mars-rover-kata

  • https://kata-log.rocks/roman-numerals-kata (j'ai déjà eu cela en entrevue)

  • https://kata-log.rocks/tic-tac-toe-kata

Référence¶

  • https://www.youtube.com/watch?v=rBcV1F7jyHw

  • https://www.youtube.com/watch?v=BKgdrEPYqmM